<?php
require_once '../ORM/ORMProducto.php';
require_once '../beans/producto.php';
require_once 'alertaControlador.php';
require_once '../session.php';

if(!empty($_POST)) {
    switch($_POST['accion']) {
        case 'agregarProducto':
            $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
            agregarProducto($nombre);
            break;
        case 'getProductosCombo':
            getProductosCombo();
            break;
        case 'getProductos':
            getProductos();
            break;
        case 'editarLabelProducto':
            $idProducto = filter_input(INPUT_POST, 'idProducto', FILTER_SANITIZE_NUMBER_INT);
            editarLabelProducto($idProducto);
            break;
        case 'guardarProducto':
            $idProducto = filter_input(INPUT_POST, 'idProducto', FILTER_SANITIZE_NUMBER_INT);
            $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
            guardarProducto($idProducto, $nombre);
            break;
        case 'eliminarProducto':
            $idProducto = filter_input(INPUT_POST, 'idProducto', FILTER_SANITIZE_NUMBER_INT);
            eliminarProducto($idProducto);
            break;
        case 'getProductosDeshabilitados':
            getProductosDeshabilitados();
            break;
        case 'habilitarProducto':
            $idProducto = filter_input(INPUT_POST, 'idProducto', FILTER_SANITIZE_NUMBER_INT);
            habilitarProducto($idProducto);
            break;
    }
}

function agregarProducto($nombre) {
    if(strlen($nombre) == 0) {
        alerta("#resultadoNombre", "Debe escribir un nombre para el Producto");
    } else {
        if(ORMExisteProducto($nombre)) {
            alerta("#resultadoNombre", "El Producto ya existe");
        } else {
            ORMAgregarProducto($nombre);
            if(ORMExisteProducto($nombre)) {
                ok("#resultadoNombre");
                ?>
<script type="text/javascript">
    $(document).ready(function() {
        getProductos();
    });
</script>
<?php
            } else {
                error("#resultadoNombre", "Se produjo un error");
            }
        }
    }
}

function getProductosCombo() {
    $productos = ORMgetProductos();
    
    echo "<select id=\"productosCombo\">\n";
    foreach ($productos as $key => $value) {
        echo "<option value=\"".$key."\">".$value."</option>\n";
    }
    echo "</select>\n";
}

function getProductos() {
    $productos = ORMgetProductos();
    
    if(count($productos) > 0) {
        echo "<table class='table table-striped table-bordered'>\n";
        foreach ($productos as $key => $value) {
            echo "<tr class=\"alternate-row\">\n";
            echo "<td width=\"80%\"><div id=\"".$key."\"><label>".$value."</label></div></td>\n";
            echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"editarLabelProducto(".$key.");\"> <i title=\"Editar\" class=\"icon-edit\"></i> </a></td>";
            echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"eliminarProducto(".$key.");\"> <i title=\"Deshabilitar\" class=\"icon-remove\"></i></a></td>\n";

            echo "</tr>";
        }
        echo "</table>\n";
    } else {
        echo "<div class='alert alert-error'><b>Alerta !</b><br />No hay productos</div>";
    }
}

function getProductosDeshabilitados() {
    $productos = ORMgetProductosDeshabilitados();
    
    echo "<h4>Productos Deshabilitados</h4><br />";
    if(count($productos)) {   
        echo "<table class='table table-striped table-bordered'>\n";
        foreach ($productos as $key => $value) {
            echo "<tr class=\"alternate-row\">\n";
            echo "<td width=\"90%\"><div id=\"".$key."\"><label>".$value."</label></div></td>\n";
            echo "<td width=\"10%\"><a href=\"#\" id=\"".$key."\" onclick=\"habilitarProducto(".$key.");\"> <i title=\"Habilitar\" class=\"icon-share-alt\"></i> </a>";
            echo "</tr>";
        }
        echo "</table>\n";
    } else {
        echo "<div class='alert alert-error'><b>Alerta !</b><br />No hay productos deshabilitados</div>";
    }
}


function editarLabelProducto($idProducto) {
    echo "<input type=\"text\" id=\"label-".$idProducto."\" value=\"".  ORMgetProducto($idProducto)."\" maxlength=\"45\" />\n";
    echo "<a href=\"#\" onclick=\"guardarProducto(".$idProducto.");\">";
    echo "<i title=\"Guardar\" class=\"icon-refresh\"></i>";
    echo "</a>\n";
}

function guardarProducto($idProducto, $nombre) {
    if(strlen($nombre) > 0) {
        ORMActualizarProducto($idProducto, $nombre);
    }
    echo "<label>".ORMgetProducto($idProducto)."</label>";
}

function eliminarProducto($idProducto) {
    
    ORMDeleteProducto($idProducto);
}

function habilitarProducto($idProducto) {
    ORMHabilitarProducto($idProducto);
}

function getProductoPorId($idProducto) {
    $producto = new producto();
    $producto->setIdProducto($idProducto);
    $producto->setNombre(ORMGetCampoDeProductoPorId('nombre', $idProducto));
    $producto->setHabilitado(ORMGetCampoDeProductoPorId('habilitado', $idProducto));
    
    return $producto;
}
?>